package com.linchong.linkedlist.easy;



/**
 * @author linchong
 * @version 1.0
 * @Date: 2020-12-01 9:25
 * @Description: MergeTwoSortedLists$21-合并有序链表
 *
 * 将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。
 * 示例：
 * 输入：1->2->4, 1->3->4
 * 输出：1->1->2->3->4->4
 *
 * 临时头节点！
 */
@SuppressWarnings("unused")
public class MergeTwoSortedLists {  // extends BasicLinkList

	public static class ListNode {
		public int val;
		public  ListNode next;
		public ListNode(){}
		public ListNode(int x) {
			val = x;
		}
		public ListNode(int val, ListNode next) { this.val = val; this.next = next; }
	}

	public ListNode mergeTwoLists(ListNode l1, ListNode l2) {
		ListNode node = new ListNode(0);
		node.next = null;
		ListNode cur = node;
		while(l1!=null && l2 !=null){
			if(l1.val>l2.val){
				cur.next = l2;
				l2 = l2.next;
			}else{
				cur.next = l1;
				l1 = l1.next;
			}
			cur = cur.next;
		}
		if(l1 !=null){
			cur.next = l1;
		}

		if(l2!=null){
			cur.next = l2;
		}
		return node.next;
	}

	public static void main(String[] args) {
		MergeTwoSortedLists instance = new MergeTwoSortedLists();
		ListNode node = new ListNode(2);
		System.out.println(node.val);

	}
}
